#pragma once
#include <cstdint>
#include <string>
#include <sstream>
#include "1700_account.pb.h"


struct stAccount
{
    std::uint32_t uid; 
    std::string agency;
    std::string username;
    std::string uuid;
    std::uint32_t agency_id;

    stAccount()
    {
        uid = 0;
        agency = "";
        username = "";
        uuid = "";
        agency_id = 0;
    }
    stAccount(const stAccount& that)
    {
        uid = that.uid;
        agency = that.agency;
        username = that.username;
        uuid = that.uuid;
        agency_id = that.agency_id;
    }
    stAccount(stAccount&& that)
    {
        uid = that.uid;
        agency = std::move(that.agency);
        username = std::move(that.username);
        uuid = std::move(that.uuid);
        agency_id = that.agency_id;
    }

	stAccount& operator = (const stAccount& that)
    {
        uid = that.uid;
        agency = that.agency;
        username = that.username;
        uuid = that.uuid;
        agency_id = that.agency_id;
        return *this;
    }
	stAccount& operator = (stAccount&& that)
    {
        uid = that.uid;
        agency = std::move(that.agency);
        username = std::move(that.username);
        uuid = std::move(that.uuid);
        agency_id = that.agency_id;
        return *this;
    }

	std::string ToString() const
    {
        std::stringstream ss;
        ss << "{";
        ss << "uid:" << uid << ",";
        ss << "agency:" << agency << ",";
        ss << "username:" << username << ",";
        ss << "uuid:" << uuid << ",";
        ss << "agency_id:" << agency_id << ",";
        ss << "}";
        return ss.str();
    }
};
